package com.yky.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * 项目表
 * 
 * @author vimesly
 * 
 */

@SuppressWarnings("serial")
@Entity
@Table(name = "work_project")
public class Project implements Serializable {

	private Integer id;

	private String regNumber; // 注册号

	// 基本信息@@@@
	private String name; // 项目名称
	private String keywords; // 项目关键词
	private String sourceType; // 来源类型
	private String sourceTypeSec; // 项目来源二级类型
	private String sponsors; // 项目资助方

	private Organization organization; // 所属机构

	// 研究设计信息@@@
	private String researchPurpose; // 研究目的
	private String researchScheme; // 研究方案摘要
	private String researchType; // 研究类型

	// 干预性研究 || 研究类型
	// 组别信息 ProjectGroup 一对多

	// 观察性研究 || 研究类型
	private String researchDesignTimer; // 研究设计时间轴向
	private String researchDesignStart; // 研究设计实施期限（年-月范围)
	private String researchDesignEnd; // 研究设计实施期限（年-月范围)

	// 其他 || 研究类型
	private String researchTypeInfo; // 研究类型说明

	private String researchDomain; // 研究领域
	private String researchDomainSec; // 二级学科

	// 研究对象信息@@@@
	private String researchObjectInfo; // 研究对象特征概述
	private String researchObjectSample; // 研究对象人群抽样方法
	private String inclusionCriteria; // 纳入标准
	private String exclusionCriteria; // 排除标准
	private String sexPreference; // 性别要求
	private String minAge; // 最低年龄不小于
	private String maxAge; // 最高年龄不大于
	private String researchObjectStatus; // 项目研究对象募集的进行状态
	private String researchObjectStart; // 项目研究对象入选预计开始日期
	private String researchObjectEnd; // 项目研究对象入选预计结束日期
	private String sampleType; // 研究中留存的生物样本类型
	private String sampleInfo; // 研究中留存的生物样本概述

	// 其他信息@@@@@
	private String websiteName; // 主页名称
	private String websiteUrl; // 主页网址
	private String thesisType; // 项目发表论著类型
	private String thesisFilePath; // 项目主发表论著(pdf)文件上传

	private String isStemCellProjects; // 是否为干细胞项目 （1-是 0-否）
	private String isProvinceManagerAudit; // 是否经过省级管理员审核（1-是 0-否）

	// 审核信息 -1=草稿 0-待审核 1-机构管理员审核通过 2-机构管理员审核不通过 3-机构管理员驳回
	// 4-省级管理员审核通过 5-省级管理员审核不通过 6-省级管理员驳回
	// 前台查询 显示（status=1 或者 status=4） 的值
    private String isTwoCommittees;// 是否国家两委局通过 0-否 1-是
	private String status; // 状态
	private String reason; // 原因

	private User createUser;
	private String createTime;

	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "name")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "keywords")
	public String getKeywords() {
		return keywords;
	}

	public void setKeywords(String keywords) {
		this.keywords = keywords;
	}

	@Column(name = "source_type")
	public String getSourceType() {
		return sourceType;
	}

	public void setSourceType(String sourceType) {
		this.sourceType = sourceType;
	}

	@Column(name = "sponsors")
	public String getSponsors() {
		return sponsors;
	}

	public void setSponsors(String sponsors) {
		this.sponsors = sponsors;
	}

	@ManyToOne
	@JoinColumn(name = "organization_id")
	public Organization getOrganization() {
		return organization;
	}

	public void setOrganization(Organization organization) {
		this.organization = organization;
	}

	@Column(name = "research_purpose")
	public String getResearchPurpose() {
		return researchPurpose;
	}

	public void setResearchPurpose(String researchPurpose) {
		this.researchPurpose = researchPurpose;
	}

	@Column(name = "research_scheme")
	public String getResearchScheme() {
		return researchScheme;
	}

	public void setResearchScheme(String researchScheme) {
		this.researchScheme = researchScheme;
	}

	@Column(name = "research_type")
	public String getResearchType() {
		return researchType;
	}

	public void setResearchType(String researchType) {
		this.researchType = researchType;
	}

	@Column(name = "research_design_timer")
	public String getResearchDesignTimer() {
		return researchDesignTimer;
	}

	public void setResearchDesignTimer(String researchDesignTimer) {
		this.researchDesignTimer = researchDesignTimer;
	}

	@Column(name = "research_design_start")
	public String getResearchDesignStart() {
		return researchDesignStart;
	}

	public void setResearchDesignStart(String researchDesignStart) {
		this.researchDesignStart = researchDesignStart;
	}

	@Column(name = "research_design_end")
	public String getResearchDesignEnd() {
		return researchDesignEnd;
	}

	public void setResearchDesignEnd(String researchDesignEnd) {
		this.researchDesignEnd = researchDesignEnd;
	}

	@Column(name = "research_type_info")
	public String getResearchTypeInfo() {
		return researchTypeInfo;
	}

	public void setResearchTypeInfo(String researchTypeInfo) {
		this.researchTypeInfo = researchTypeInfo;
	}

	@Column(name = "research_domain")
	public String getResearchDomain() {
		return researchDomain;
	}

	public void setResearchDomain(String researchDomain) {
		this.researchDomain = researchDomain;
	}

	@Column(name = "research_domain_sec")
	public String getResearchDomainSec() {
		return researchDomainSec;
	}

	public void setResearchDomainSec(String researchDomainSec) {
		this.researchDomainSec = researchDomainSec;
	}

	@Column(name = "research_object_info")
	public String getResearchObjectInfo() {
		return researchObjectInfo;
	}

	public void setResearchObjectInfo(String researchObjectInfo) {
		this.researchObjectInfo = researchObjectInfo;
	}

	@Column(name = "research_object_sample")
	public String getResearchObjectSample() {
		return researchObjectSample;
	}

	public void setResearchObjectSample(String researchObjectSample) {
		this.researchObjectSample = researchObjectSample;
	}

	@Column(name = "inclusion_criteria")
	public String getInclusionCriteria() {
		return inclusionCriteria;
	}

	public void setInclusionCriteria(String inclusionCriteria) {
		this.inclusionCriteria = inclusionCriteria;
	}

	@Column(name = "exclusion_criteria")
	public String getExclusionCriteria() {
		return exclusionCriteria;
	}

	public void setExclusionCriteria(String exclusionCriteria) {
		this.exclusionCriteria = exclusionCriteria;
	}

	@Column(name = "sex_preference")
	public String getSexPreference() {
		return sexPreference;
	}

	public void setSexPreference(String sexPreference) {
		this.sexPreference = sexPreference;
	}

	@Column(name = "min_age")
	public String getMinAge() {
		return minAge;
	}

	public void setMinAge(String minAge) {
		this.minAge = minAge;
	}

	@Column(name = "max_age")
	public String getMaxAge() {
		return maxAge;
	}

	public void setMaxAge(String maxAge) {
		this.maxAge = maxAge;
	}

	@Column(name = "research_object_status")
	public String getResearchObjectStatus() {
		return researchObjectStatus;
	}

	public void setResearchObjectStatus(String researchObjectStatus) {
		this.researchObjectStatus = researchObjectStatus;
	}

	@Column(name = "research_object_start")
	public String getResearchObjectStart() {
		return researchObjectStart;
	}

	public void setResearchObjectStart(String researchObjectStart) {
		this.researchObjectStart = researchObjectStart;
	}

	@Column(name = "research_object_end")
	public String getResearchObjectEnd() {
		return researchObjectEnd;
	}

	public void setResearchObjectEnd(String researchObjectEnd) {
		this.researchObjectEnd = researchObjectEnd;
	}

	@Column(name = "sample_type")
	public String getSampleType() {
		return sampleType;
	}

	public void setSampleType(String sampleType) {
		this.sampleType = sampleType;
	}

	@Column(name = "sample_info")
	public String getSampleInfo() {
		return sampleInfo;
	}

	public void setSampleInfo(String sampleInfo) {
		this.sampleInfo = sampleInfo;
	}

	@Column(name = "website_name")
	public String getWebsiteName() {
		return websiteName;
	}

	public void setWebsiteName(String websiteName) {
		this.websiteName = websiteName;
	}

	@Column(name = "website_url")
	public String getWebsiteUrl() {
		return websiteUrl;
	}

	public void setWebsiteUrl(String websiteUrl) {
		this.websiteUrl = websiteUrl;
	}

	@Column(name = "thesis_type")
	public String getThesisType() {
		return thesisType;
	}

	public void setThesisType(String thesisType) {
		this.thesisType = thesisType;
	}

	@Column(name = "thesis_file_path")
	public String getThesisFilePath() {
		return thesisFilePath;
	}

	public void setThesisFilePath(String thesisFilePath) {
		this.thesisFilePath = thesisFilePath;
	}

	@Column(name = "status")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	@Column(name = "reason")
	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	@Column(name = "source_type_sec")
	public String getSourceTypeSec() {
		return sourceTypeSec;
	}

	public void setSourceTypeSec(String sourceTypeSec) {
		this.sourceTypeSec = sourceTypeSec;
	}

	@Column(name = "reg_number")
	public String getRegNumber() {
		return regNumber;
	}

	public void setRegNumber(String regNumber) {
		this.regNumber = regNumber;
	}

	@ManyToOne
	@JoinColumn(name = "create_user_id")
	public User getCreateUser() {
		return createUser;
	}

	public void setCreateUser(User createUser) {
		this.createUser = createUser;
	}

	@Column(name = "create_time")
	public String getCreateTime() {
		return createTime;
	}

	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}

	@Column(name = "is_stem_cell_projects")
	public String getIsStemCellProjects() {
		return isStemCellProjects;
	}

	public void setIsStemCellProjects(String isStemCellProjects) {
		this.isStemCellProjects = isStemCellProjects;
	}

	@Column(name = "is_province_manager_audit")
	public String getIsProvinceManagerAudit() {
		return isProvinceManagerAudit;
	}

	public void setIsProvinceManagerAudit(String isProvinceManagerAudit) {
		this.isProvinceManagerAudit = isProvinceManagerAudit;
	}

	@Column(name = "is_two_committees")
	public String getIsTwoCommittees() {
		return isTwoCommittees;
	}

	public void setIsTwoCommittees(String isTwoCommittees) {
		this.isTwoCommittees = isTwoCommittees;
	}

	
	
}
